package com.eduplatform.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.eduplatform.entity.Course;

public interface CourseService extends IService<Course> {

    /**
     * Get course list with pagination
     * 
     * @param page page number
     * @param size page size
     * @return page of courses
     */
    Page<Course> listCourses(Integer page, Integer size);

    /**
     * Get course list with filters
     * 
     * @param page      page number
     * @param size      page size
     * @param keyword   search keyword
     * @param subjectId subject ID
     * @param level     difficulty level
     * @param type      user type (student/teacher)
     * @return page of courses
     */
    Page<Course> listCoursesWithFilters(Integer page, Integer size, String keyword,
            Long subjectId, Integer level, String type);

    /**
     * Get courses by teacher ID
     * 
     * @param teacherId teacher ID
     * @param page      page number
     * @param size      page size
     * @return page of courses
     */
    Page<Course> listCoursesByTeacher(Long teacherId, Integer page, Integer size);
}